home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 4
/
Aminet 4 - November 1994.iso
/
aminet
/
dev
/
gui
/
muibuilderv11.lha
/
muibuilder
/
mb
/
e
/
Application+Locale.e
< prev
next >
Wrap
Text File
|
1994-03-15
|
5KB
|
146 lines
/******************************************************************************
Here is an example of an "environnement file". All you have to do, si to
fill it with :
- some constant declarations and array initialisations for localisation
- use MUIBuilder+GenCodeE to generate the create_app() function
- add the code for your application !!!
******************************************************************************/
OPT OSVERSION=37
/* Module definitions */
MODULE 'muimaster', 'libraries/mui'
MODULE 'utility/tagitem', 'utility/hooks'
MODULE 'intuition/classes', 'intuition/classusr'
MODULE 'locale', 'libraries/locale'
/* Error handling */
ENUM NO_LIBRARY, MUI_APPLICATION_FAILURE
RAISE NO_LIBRARY IF OpenLibrary()=NIL,
MUI_APPLICATION_FAILURE IF Mui_NewObjectA()=NIL
/* Object definitions */
OBJECT fc_type
id :LONG
str :LONG
ENDOBJECT
/* Constant definitions */
CONST MUI_TRUE = 1
/******************************************
Add here some constant declarations
for localisation.
******************************************/
/* Global variables */
DEF catalog_application:PTR TO catalog
DEF array_application[]:ARRAY OF fc_type /* Update array size */
/*MUIB*/
/* Main procedure */
PROC main() HANDLE
DEF signal, result_DoMethod, running = TRUE
localebase := OpenLibrary('locale.library', 0)
muimasterbase := OpenLibrary('muimaster.library', 0)
open_application_catalog(NIL, NIL)
create_app()
WHILE running
result_DoMethod := doMethod( app, [ MUIM_Application_Input, {signal} ] )
SELECT result_DoMethod
CASE MUIV_Application_ReturnID_Quit
running := FALSE
ENDSELECT
IF (running AND signal) THEN Wait( signal )
ENDWHILE
Mui_DisposeObject( app )
close_application_catalog()
CloseLibrary( muimasterbase )
CloseLibrary( localebase )
EXCEPT
SELECT exception
CASE NO_LIBRARY
CASE MUI_APPLICATION_FAILURE
ENDSELECT
ENDPROC
/* Procedure generated by GenCodeE which creates your application */
PROC create_app()
ENDPROC
/* DoMethod() function */
PROC doMethod( obj:PTR TO object, msg:PTR TO msg )
DEF h:PTR TO hook, o:PTR TO object, dispatcher
IF obj
o := obj-SIZEOF object /* instance data is to negative offset */
h := o.class
dispatcher := h.entry /* get dispatcher from hook in iclass */
MOVEA.L h,A0
MOVEA.L msg,A1
MOVEA.L obj,A2 /* probably should use CallHookPkt, but the */
MOVEA.L dispatcher,A3 /* original code (DoMethodA()) doesn't. */
JSR (A3) /* call classDispatcher() */
MOVE.L D0,o
RETURN o
ENDIF
ENDPROC NIL
/* Extended KeyButton for localized buttons */
PROC et_key_button( text:PTR TO CHAR ) RETURN KeyButton( (text+3), text[1] )
/* An easy OpenCatalog() function */
PROC open_application_catalog(loc:PTR TO locale, language:PTR TO CHAR)
DEF tag, tagarg, dummy_var = 0
/******************************************
Add here some array initialisations
for localisation.
******************************************/
IF (localebase AND (catalog_application = NIL))
IF language
tag := OC_LANGUAGE
tagarg := language
ELSE
tag:= TAG_IGNORE
ENDIF
catalog_application := OpenCatalogA(loc, 'application.catalog',
[ OC_BUILTINLANGUAGE, 'english', /* Update built-in language */
tag, tagarg,
OC_VERSION, 0, /* Update catalog version number */
TAG_DONE ])
ENDIF
ENDPROC
/* An easy CloseCatalog() function */
PROC close_application_catalog()
IF localebase THEN CloseCatalog( catalog_application )
catalog_application := NIL
ENDPROC
/* A GetString() function for localized strings */
PROC get_application_string( strnum )
DEF defaultstr:PTR TO CHAR, i = 0
/* Fill the 2 (i < ?) tests by the array size */
WHILE ((i < ?) AND (array_application[i].id <> strnum)) DO INC i
defaultstr := IF (i < ?) THEN array_application[i].str ELSE NIL
ENDPROC IF catalog_application THEN GetCatalogStr( catalog_application, strnum, defaultstr ) ELSE defaultstr